1. Field of the Invention
This invention relates generally to computer systems, and more particularly to canceling service Requests in computer systems.
2. Description of the Background Art
Program routines, such as application program routines or operating system routines, request computer processing of services, such as file management, block storage management, print commands, keyboard inputs, establishing a connection, changing power mode, etc., by generating a "Request" and associated information. The Request and associated information are delivered to a performing target system, which may be a physical device such as a printer or hard drive, or may be a logical device such as another program routine. The Request is a message containing a command such as a "read" or a "write." For example, a user may select a "Save" choice from a pull-down menu in a word processing program to request storage of a text document on a hard drive. Accordingly, a word processor program routine generates a "write" Request, and delivers the Request and associated information to the hard drive, which as instructed stores the data.
For various reasons such as cancellation by a user, expiration of a time limit or system termination of a particular task, a particular program routine may seek to cancel a previously-issued Request. For example, a user may become tired of waiting for a Request, such as a "print," to complete, or may decide that making the Request was a mistake.
Previous programs include specific routines for recognizing cancellation initiation sequences, and specific routines for implementing the Cancels. For example, some word processing programs recognize a "command-period" or a mouse-down operation while the cursor is over a field labeled "Cancel" or "Stop" as a user cancellation Request. However, requiring each program to include specific routines to monitor for cancellation initialization sequences and to perform cancellation is inefficient.
Previous programs are also limited to canceling only specific Requests such as "print." For a first example, if a user requests a system to store a file onto a floppy disk, the system reads the file data, sends the data to a Small Computer System Interface (SCSI) port, and writes the data to the floppy disk. However, to cancel this file storage Request, the user must know the specific implementation underlying the system so that the user can "find" and accordingly delete the Request. Otherwise, the Request cannot be stopped. For a second example, many users have experienced a computer which has become "caught in a loop" while attempting to process a Request such as "Save." Without means to issue a specific Cancel, only quitting the application program or rebooting the system will free the computer.
Further, previous cancellation systems do not report the actual results of the Request to the originating program routine. For example, if a word processor user terminates a print Request, but several pages are printed nonetheless, the word processor and the user remain unaware of the printed pages. To the application and to the user, the job was canceled and no results were obtained.
Therefore, a system and method are needed to provide a system-wide cancellation function. Further, a system and method are needed that enable communication with a target system, and intermediate layers, for canceling Requests which are currently being processed. Still further, a system and method are needed that provide the actual status of previously-issued Requests back to the originating program routine.